home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.util.Random;
-
- public class TextManiacCanvas2 extends Canvas implements Runnable {
- Thread appThread;
- Image osImage;
- Graphics osg;
- Color bkColor;
- Image bkImage;
- String message;
- Color[] color;
- int[] xPos;
- int[] yPos;
- Font[] font;
- // $FF: renamed from: fm java.awt.FontMetrics[]
- FontMetrics[] field_0;
- int[] xRangeMin;
- int[] xRangeMax;
- int[] yRangeMin;
- int[] yRangeMax;
- int[] xMovement;
- int[] yMovement;
- Color[] defColor;
- boolean[] randomColor;
- boolean[] randomXPos;
- boolean[] randomYPos;
- Random randomizer;
- int delayTime;
-
- public TextManiacCanvas2(Applet var1, int var2) {
- this.GetParameters(var1, var2);
- this.defColor = new Color[13];
- this.defColor[0] = Color.black;
- this.defColor[1] = Color.blue;
- this.defColor[2] = Color.cyan;
- this.defColor[3] = Color.darkGray;
- this.defColor[4] = Color.gray;
- this.defColor[5] = Color.green;
- this.defColor[6] = Color.lightGray;
- this.defColor[7] = Color.magenta;
- this.defColor[8] = Color.orange;
- this.defColor[9] = Color.pink;
- this.defColor[10] = Color.red;
- this.defColor[11] = Color.white;
- this.defColor[12] = Color.yellow;
- this.randomizer = new Random(System.currentTimeMillis());
- }
-
- void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("textManiacBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, (Color)null);
- if (this.bkColor != null) {
- ((Component)this).setBackground(this.bkColor);
- }
-
- var3 = var1.getParameter("textManiacBkImage" + var2);
- this.bkImage = var1.getImage(var1.getCodeBase(), var3);
- var3 = var1.getParameter("textManiacDelayTime" + var2);
- this.delayTime = AppletParam2.GetInt(var3, 250);
- var3 = var1.getParameter("textManiacMessage" + var2);
- this.message = AppletParam2.GetString(var3, "Message");
- this.color = new Color[this.message.length()];
- this.xPos = new int[this.message.length()];
- this.yPos = new int[this.message.length()];
- this.font = new Font[this.message.length()];
- this.field_0 = new FontMetrics[this.message.length()];
- this.xRangeMin = new int[this.message.length()];
- this.xRangeMax = new int[this.message.length()];
- this.yRangeMin = new int[this.message.length()];
- this.yRangeMax = new int[this.message.length()];
- this.xMovement = new int[this.message.length()];
- this.yMovement = new int[this.message.length()];
- this.randomColor = new boolean[this.message.length()];
- this.randomXPos = new boolean[this.message.length()];
- this.randomYPos = new boolean[this.message.length()];
-
- for(int var4 = 0; var4 < this.message.length(); ++var4) {
- var3 = var1.getParameter("textManiacFont," + var4 + "," + var2);
- this.font[var4] = AppletParam2.GetJavaFont(var3);
- this.field_0[var4] = ((Component)this).getFontMetrics(this.font[var4]);
- var3 = var1.getParameter("textManiacColor," + var4 + "," + var2);
- this.color[var4] = AppletParam2.GetColor(var3, Color.black);
- var3 = var1.getParameter("textManiacXPos," + var4 + "," + var2);
- this.xPos[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacYPos," + var4 + "," + var2);
- this.yPos[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacXRangeMin," + var4 + "," + var2);
- this.xRangeMin[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacXRangeMax," + var4 + "," + var2);
- this.xRangeMax[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacYRangeMin," + var4 + "," + var2);
- this.yRangeMin[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacYRangeMax," + var4 + "," + var2);
- this.yRangeMax[var4] = AppletParam2.GetInt(var3, 0);
- var3 = var1.getParameter("textManiacXMovement," + var4 + "," + var2);
- this.xMovement[var4] = AppletParam2.GetInt(var3, 1);
- var3 = var1.getParameter("textManiacYMovement," + var4 + "," + var2);
- this.yMovement[var4] = AppletParam2.GetInt(var3, 1);
- var3 = var1.getParameter("textManiacRandomColor," + var4 + "," + var2);
- this.randomColor[var4] = AppletParam2.GetBoolean(var3, false);
- var3 = var1.getParameter("textManiacRandomXPos," + var4 + "," + var2);
- this.randomXPos[var4] = AppletParam2.GetBoolean(var3, false);
- var3 = var1.getParameter("textManiacRandomYPos," + var4 + "," + var2);
- this.randomYPos[var4] = AppletParam2.GetBoolean(var3, false);
- }
-
- }
-
- public void Start() {
- this.appThread = new Thread(this);
- this.appThread.start();
- }
-
- public void Stop() {
- this.appThread.stop();
- this.appThread = null;
- }
-
- public void update(Graphics var1) {
- if (this.osImage == null) {
- this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
- this.osg = this.osImage.getGraphics();
- }
-
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.bkImage != null) {
- int var2 = this.bkImage.getWidth(this);
- int var3 = this.bkImage.getHeight(this);
- int var4 = ((Component)this).size().width / var2;
- int var5 = ((Component)this).size().height / var3;
- ++var4;
- ++var5;
-
- for(int var6 = 0; var6 < var5; ++var6) {
- for(int var7 = 0; var7 < var4; ++var7) {
- this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
- }
- }
- }
-
- for(int var8 = 0; var8 < this.message.length(); ++var8) {
- if (!this.randomColor[var8]) {
- this.osg.setColor(this.color[var8]);
- } else {
- this.osg.setColor(this.defColor[Math.abs(this.randomizer.nextInt()) % 13]);
- }
-
- this.osg.setFont(this.font[var8]);
- this.osg.drawString(this.message.substring(var8, var8 + 1), this.xPos[var8], this.yPos[var8]);
- }
-
- var1.drawImage(this.osImage, 0, 0, this);
- }
-
- public void run() {
- while(true) {
- try {
- ((Component)this).repaint();
- Thread.sleep((long)this.delayTime);
- this.UpdateChars();
- } catch (InterruptedException var1) {
- }
- }
- }
-
- public Dimension minimumSize() {
- return new Dimension(10, 10);
- }
-
- public Dimension preferredSize() {
- return new Dimension(10, 10);
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.osImage = null;
- this.osg = null;
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- ((Component)this).repaint();
- return true;
- }
-
- void UpdateChars() {
- for(int var1 = 0; var1 < this.message.length(); ++var1) {
- if (!this.randomXPos[var1]) {
- int[] var10000 = this.xPos;
- var10000[var1] += this.xMovement[var1];
- if (this.xPos[var1] < this.xRangeMin[var1]) {
- this.xPos[var1] = this.xRangeMin[var1];
- this.xMovement[var1] = -this.xMovement[var1];
- } else if (this.xPos[var1] > this.xRangeMax[var1]) {
- this.xPos[var1] = this.xRangeMax[var1];
- this.xMovement[var1] = -this.xMovement[var1];
- }
- } else if (this.xMovement[var1] != 0) {
- this.xPos[var1] = Math.abs(this.randomizer.nextInt()) % (this.xRangeMax[var1] - this.xRangeMin[var1] + 1) + this.xRangeMin[var1];
- }
-
- if (!this.randomYPos[var1]) {
- int[] var2 = this.yPos;
- var2[var1] += this.yMovement[var1];
- if (this.yPos[var1] < this.yRangeMin[var1]) {
- this.yPos[var1] = this.yRangeMin[var1];
- this.yMovement[var1] = -this.yMovement[var1];
- } else if (this.yPos[var1] > this.yRangeMax[var1]) {
- this.yPos[var1] = this.yRangeMax[var1];
- this.yMovement[var1] = -this.yMovement[var1];
- }
- } else if (this.yMovement[var1] != 0) {
- this.yPos[var1] = Math.abs(this.randomizer.nextInt()) % (this.yRangeMax[var1] - this.yRangeMin[var1] + 1) + this.yRangeMin[var1];
- }
- }
-
- }
- }
-